﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QLLopHoc.DoiTuongDuLieu;
using System.Data;


namespace QLLopHoc.KetNoiDatabase
{
    public class KNGiangVien
    {
        //phuong thuc lay ra giang vien dua vao ma so giang vien
        public static DTGiangVien LayGVTuMS(string msgv)
        {
            DTGiangVien kq = null;
            string sql = "SELECT * FROM GiangVien WHERE MSGV='" + msgv + "'";
            DataTable dt = DataAccess.ExecQuery(sql);
            if (dt.Rows.Count > 0)
            {
                DataRow dr = dt.Rows[0];
                kq = new DTGiangVien();
                kq.MSSV = (string)dr["MSSV"];
                kq.HoTen = (string)dr["HoTen"];
                kq.Email = (string)dr["Email"];
                kq.Tel = (string)dr["Tel"];
            }
            return kq;
        }
        //phuong thuc them vao 1 giang vien
        public static bool ThemGV(DTGiangVien gv)
        {
            string sql = "INSERT INTO GingVien (MSSV,HoTen,Email,Tel) VALUES('" + gv.MSSV + "','" + gv.HoTen + "','" + gv.Email + "','" + gv.Tel + "'";
            if (DataAccess.ExecuteNonQuery(sql) > 0)
            {
                return true;
            }
            return false;
        }
        //phuong thuc xoa 1 giang vien
        public static bool XoaGV(string msgv)
        {
            string sql = "DELETE FROM GiangVien WHERE MSGV='" + msgv + "'";
            if (DataAccess.ExecuteNonQuery(sql) > 0)
            {
                return true;
            }
            return false;
        }
        //phuong thuc cap nhat 1 giang vien
        public static bool CapNhatGiangVien(DTGiangVien gv)
        {
            string sql = "UPDATE GiangVien SET HoTen='" + gv.HoTen + ",Email='" + gv.Email + ",Tel='" + gv.Tel + "'" + "WHERE MSSV='" + gv.MSSV + "'";
            if (DataAccess.ExecuteNonQuery(sql) > 0)
            {
                return true;
            }
            return false;
        }
         //Phương thức lấy danh sách giảng viên 
        public static List<DTGiangVien> LayDSGV()
        { 
            List<DTGiangVien> dsgv = new List<DTGiangVien>(); 
            string sql = "SELECT * FROM GiangVien"; 
            DataTable dt = DataAccess.ExecQuery(sql); 
            DTGiangVien gv = null; 
            foreach (DataRow dr in dt.Rows) 
            { 
                gv = new DTGiangVien(); 
                gv.MSSV = (string)dr["MSGV"]; 
                gv.HoTen = (string)dr["HoTen"]; 
                gv.Email = (string)dr["Email"]; 
                gv.Tel = (string)dr["Tel"]; 
                dsgv.Add(gv); 
            } 
            return dsgv; 
        }
        //phương thức lấy ra bảng giảng viên 
        public static DataTable LayBangGV()
        {
            DataTable dt = null;
            string sql = "SELECT * FROM GiangVien";
            dt = DataAccess.ExecQuery(sql);
            return dt;
        }
        //phương thức cập nhật bảng giảng viên 
        public static bool UpdateTableGV(DataTable dt)
        {
            string sql = "SELECT * FROM GiangVien";
            if (DataAccess.ExecUpdate(sql, dt) > 0)
                return true;
            return false;
        }

        //phương thức tạo 1 mã số giảng viên 
        public static string GenerateMSGV()
        {
            string sql = "SELECT * FROM GiangVien";
            DataAccess.OpenConnection();
            DataTable dt = DataAccess.ExecQueryManualConnect(sql);
            int sl = dt.Rows.Count + 1;
            //định dạng cho ms thành 'GVxxx' 
            string ms = String.Format("GV{0:000}", sl);
            string tempMS = "";
            sql = "SELECT * FROM GiangVien WHERE MSGV='" + ms + "'";
            while (DataAccess.ExecQueryManualConnect(sql).Rows.Count > 0)
            {
                sl++;
                tempMS = ms;
                ms = String.Format("GV{0:000}", sl);
                sql = sql.Replace(tempMS, ms);
            }
            DataAccess.CloseConnection();
            return ms;
        } 
    }
}
